Computer-implemented image acquisition system

ABSTRACT

An image acquisition system has a computer and one or more imaging devices coupled to the computer. Each imaging device has a device memory and is capable of capturing a digital image and storing the image in its memory. An image device manager is implemented in software on the computer to control operation of the imaging devices. The image device manager presents a user interface (UI) within the familiar graphical windowing environment. The UI has a context space that pertains to a particular imaging context (e.g., scanning, photography, and video). The UI also has a persistently-visible imaging menu positioned within the context space that lists options particular to the imaging context. For example, if the context space pertains to the digital camera context, the menu lists options to take a picture, store the image on the computer, send the image in an email, and so on. In the scanner context, the menu lists options to select an image type, preview an image, send the image to a particular destination, and scan the image. The image acquisition system also includes a set of application program interfaces (APIs) that expose image management functionality to applications. The APIs enable applications to manage loading and unloading of imaging devices, monitor device events, query device information properties, create device objects, capture images using the devices, and store or manipulate the images after their capture.

TECHNICAL FIELD

[0001] This invention relates to computer-implemented systems formanaging imaging devices, such as digital cameras, scanners, and thelike. This invention also relates to graphical window user interfaces,and particularly to user interfaces used to facilitate capture andstorage management of digital images. This invention further relates tooperating systems and browsers that incorporate image device managersand user interfaces.

BACKGROUND

[0002] Digital imaging devices, such as scanners, cameras, videocameras, have been experiencing rapid growth in popularity as theirprice tags continue to decrease. Recreational photographers enjoycapturing pictures and videos and placing the digital files onto theircomputers for printing or emailing to friends and relatives. Businessesuse scanners to digitally record documents used in day-to-day operationfor archival purposes.

[0003] Other solutions to this problem already exist. For example, TWAINand ISIS are two image acquisition systems that are available today.However, both of these solutions have problems. TWAIN lacks robustnessand interoperability. ISIS is a proprietary design that renders itdifficult to use with other applications.

[0004] Accordingly, a task set before the inventor was to create animage acquisition system that was based on an open architecture modeland could be integrated with existing applications and operating systemsto provide a convenient environment for the user.

SUMMARY

[0005] This invention concerns an image acquisition system that offersan open architecture to integration with existing operating systems andother applications.

[0006] In an exemplary implementation, the image acquisition system isimplemented on computer, such as a desktop personal computer, having aprocessing unit, memory, and operating system. One or more imagingdevices are coupled to the computer. Examples of the imaging devicesinclude a scanner, a digital camera, a digital video camera, and soforth. Some imaging devices, such as digital cameras, have a devicememory and are capable of capturing a digital image and storing theimage on its memory. Other imaging devices, such as scanners, may nothave their own device memory.

[0007] The image acquisition system further includes an image devicemanager that is implemented in software on the computer to controloperation of the imaging devices. The image acquisition system presentsa user interface (UI) within the familiar graphical windowingenvironment. The UI presents a graphical window having a context spacethat pertains to a particular imaging context (e.g., scanning,photography, and video). In the camera context, the context spacepresents image files stored on the camera memory and/or on the computermemory. In the scanner context, the context space includes a previewscan area that reveals a preview of the image in the scanner. In thevideo context, the context space presents video clips stored on thecomputer memory, but logically represented as belonging to the videocamera.

[0008] The UI also has a persistently visible imaging menu positionedwithin the context space that lists options particular to an imagingcontext. For example, if the context space pertains to the cameracontext, the menu lists options to take a picture, store a capturedimage on the computer, send the image in an email, and so on. In thescanner context, the menu lists options to select an image type, previewan image, send the image to a particular destination, and scan theimage.

[0009] The image acquisition system also includes a set of applicationprogram interfaces (APIs) that expose image management functionality toapplications. The APIs enable applications to manage loading andunloading of imaging devices, monitor device events, query deviceinformation properties, create device objects, capture images using thedevices, and store or manipulate the images after their capture.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010]FIG. 1 is a block diagram of an image acquisition system.

[0011]FIG. 2 is a block diagram of a software architecture for the imageacquisition system.

[0012]FIG. 3 is a diagrammatic illustration of a graphical userinterface window showing integration of the image acquisition systemwithin a familiar file system setting.

[0013]FIG. 4 is a diagrammatic illustration of a graphical userinterface window showing an opening window for managing imaging devices.

[0014]FIG. 5 is a diagrammatic illustration of a graphical userinterface window for interfacing with a scanner.

[0015]FIG. 6 is a diagrammatic illustration of a graphical userinterface window for interfacing with a digital camera.

[0016]FIG. 7 is a diagrammatic illustration of a graphical userinterface window for interfacing with a digital video camera.

BRIEF DESCRIPTION OF THE APPENDIX

[0017] An attached appendix forms part of this document. The appendixcontains a description of methods implemented in an image acquisitionAPI (application program interface) utilized by the image acquisitionsystem.

DETAILED DESCRIPTION

[0018] This invention concerns a computer-implemented image acquisitionsystem that manages imaging devices (such as digital cameras, scanners,digital video cameras, and the like) and the images captured by them. Ina preferred implementation, the image acquisition system is implementedin a general-purpose computer (e.g., personal computer, laptop, etc.) tomanage imaging devices attached locally to the computer or coupledremotely via a network. The image acquisition system supports agraphical user interface windowing environment that is integrates imagedevice management with the same look and feel of familiar browsing userinterfaces for conventional file systems. In this manner, a userencounters a familiar experience when managing the imaging devices andimage files from his/her computer.

[0019] Exemplary System Architecture

[0020]FIG. 1 shows an image acquisition system 20 having a computer 22coupled to multiple imaging devices 24-30. The computer 22 is ageneral-purpose computing device that is described and illustrated, fordiscussion purposes, as a desktop personal computer (PC). The computer22 has a processing unit 40, a volatile memory 42 (e.g., RAM), anon-volatile data memory 44 (e.g., disk drive, etc.), a non-volatileprogram memory 94 (e.g., ROM, disk drive, CD-ROM, etc.), a display 48(e.g., VGA monitor), and a universal serial bus (USB) 50. An operatingsystem/browser 52 is stored in program memory 46 and executed on theprocessing unit 40 when the computer is booted. Examples of suitableoperating systems 52 include the Windows-brand operating systems fromMicrosoft Corporation and the operating systems from Apple Computer.Although a USB 50 is shown and described, other bus architectures may beused, including general serial buses, a SCSI bus, an IEEE 1394 serialbus that conforms to the IEEE 1394 specification, and so forth.

[0021] The imaging devices 24-30 are coupled to the computer via aserial connection to the USB 50. Illustrated examples of the imagingdevices include a scanner 24, a video camera 26, and a digital camera28. However, other imaging devices (e.g., copiers, facsimile machines,etc.) may also be used in conjunction with aspects of this invention, asrepresented by the generic imaging device 30. Some of the imagingdevices have their own memory, as represented by memory 32 in imagingdevice 30. For example, the digital camera may have its own memory,whereas the scanner typically does not have a memory.

[0022] The image acquisition system 20 includes an image device manager60, which is implemented as a software component loaded on the computer22. More particularly, the image device manager 60 is stored in programmemory 46 and runs on processing unit 40 during execution. The imagedevice manager 60 may be integrated into the operating system 52 (asshown), executed as a set of services, or implemented as a separateself-contained program.

[0023] The image acquisition system 20 also has a user interface 62,which is preferably a graphical user interface that presents a graphicalwindow having a context space pertaining to the imaging context.Depending upon the particular context, the context space may listavailable imaging devices for which device drivers have been loaded ontothe computer, or list digital image files captured by one or more of theimaging devices, or show an image being scanned in by the scanner.

[0024] The user interface 62 further presents a persistently visibleimaging menu positioned within the context space. The imaging menu listsoptions that are particular to controlling the various imaging devices.For instance, when the context space pertains to the camera context, themenu lists a “Take Picture” option that is specific to operating thedigital camera 28. Upon user selection of “Take Picture”, the imagedevice manager 60 directs the digital camera 28 to record the currentimage obtained through the camera lens. In the scanner context, the menulists a “Scan/Open” option that is particular to operating the scanner.Upon selection of this option, the image device manager 60 directs thescanner to scan the current image.

[0025] The image device manager 60 has an image device driver 64 and aset of A) PIs (application program interfaces) 66. The image devicedriver 64 controls operation of the imaging device in response toselected options in the context-specific menu. The driver 64 is the codethat facilitates communication with the imaging device over the USB 50and passes commands to capture an image, to read image files from thedevice's local memory, to obtain the device's properties, and so forth.

[0026] The APIs 66 define a set of interfaces that can be used to accessthe functionality of the image device manager 60. These APIs aredescribed in detail in an Appendix to this disclosure, which isincorporated herein.

[0027] Exemplars Software Architecture

[0028]FIG. 2 shows a software architecture 70 for implementing the imageacquisition system. At the kernel level, the architecture 70 includeskernel I/O drivers that include a bus driver to drive serialcommunication with the imaging device over the USB 50.

[0029] At the user level, a device driver 74 is loaded for theparticular imaging device connected to the computer. The device driver74 includes a device object, an optional UI, and optional imageprocessing capabilities. An image device manager object 76 is called toinitialize and select an image device, and create the device interface.The image device manager object 76 performs such tasks as instantiatinga device driver object 74, determining the device status, monitoringevents from the device, and so forth.

[0030] A COM (component object model) layer 78 exposes the device driverobject 74 and image device manager object 76 to an upper levelapplication 80. The application layer 80 represents both traditionalTWAIN based applications that utilize a TWAIN compatibility layer 82, aswell as new applications that support the APIs 66. Unlike thetraditional TWAIN model, however, the TWAIN compatibility layer 82interacts with the COM-based objects 74 and 76 rather than TWAIN-baseddevices.

[0031] Image Acquisition User Interface

[0032] The image acquisition system may be incorporated into theoperating system, exist as a set of services, or be run as a separate,self-contained application. For discussion purposes, the imageacquisition system is described as being integrated into an operatingsystem that supports a graphical user interface windowing environment.

[0033]FIG. 3 shows an initial graphical user interface window 100presented on the computer display 48. This window 100 is illustrated asthe familiar “My Computer” screen within a browser-based windowingsetting, which is well known to users of Windows-brand operatingsystems. The “My Computer” window 100 presents a context for listing themajor components that make up the user's PC, including disk drives,printers, a control panel, and networking functionality.

[0034] Of interest to the image acquisition system is the integrationand treatment of the imaging devices as a folder 102 organized with theother general computer components. This provides a convenient startingpoint for the user to access the imaging devices 24-30 that are coupledto the computer 22.

[0035] When the user activates the “Imaging Devices” folder icon 102 forthe first time, an installation Wizard comes up to guide the userthrough the installation of an imaging device. Suppose, for example, theuser has installed two scanning devices and a digital camera. Activatingthe “Imaging Devices” icon 102 navigates to a new “Imaging Devices”window.

[0036]FIG. 4 shows the “Imaging Devices” window 110 presented on thecomputer display 48. The “Imaging Devices” window 110 pertains to animaging context and lists the imaging devices that have been installedon the computer. In this example, the window lists an “add imagingdevice” icon 112 and icons for the three installed devices: a “MyScanner” icon 114 for a locally installed scanner, a “My Camera” icon116 for the installed camera, and a “Jake's Scanner” icon 118 forremotely installed (via a network connection) scanner. Activation of the“add imaging device” icon 112 recalls the wizard to enable the user toinstall any additional imaging devices.

[0037] The “Imaging Devices” window 110 distinguishes between devicesthat are currently available and those that are not available (e.g.,offline, physically removed, etc.). Devices that are not available aredimmed and the user has the option of uninstalling them. In FIG. 4, thesecond scanner identified as “Jake's Scanner” is not available and hencethe icon 118 is dimmed.

[0038] Activating one of the imaging devices listed in window 110 causesthe image acquisition system to present different windows exhibitingcontexts that are specific to the selected imaging device. Within thesedevice-oriented windows, the image acquisition system presentscontext-specific menus that contain items or options pertinent andrelevant to the particular imaging device.

[0039]FIG. 5 shows a “My Scanner” window 120 that is presented uponselection of the “My Scanner” icon 114 in FIG. 4. The scanner window 120presents a context space 122 that pertains to the scanning context. Thecontext space 122 has a preview scan space 124 and apersistently-visible, context-specific menu 126 positioned adjacent thepreview scan space within the graphical window 120.

[0040] The context-specific menu 126 is always visible in the scannerwindow 120. The menu 126 offers options that are tailored to operatingthe scanner attached to the computer or remotely coupled to the computervia a network. While some of the options may be included in a contextmenu (i.e., a menu that appears near the pointer following a right moueclick), the persistently-visible menu 126 lists operating specificoptions tailored to the scanner that are not included elsewhere in theuser interface.

[0041] The menu 126 includes an image type selection 128 that has apull-down list of various image types from which a user may select. Anon-exhaustive list of image types includes color photograph, black andwhite photograph, color line art, black and white line art, and text.The image types included in the pull-down list 128 are specific to thedevice. Some imaging devices may not provide support for a given formatand hence the format is omitted in that particular list.

[0042] A destination selection 130 has a pull-down list of variouschoices on what to do with the scanned image. For instance, the list 130might include using the image in an application, faxing the image,printing the image, copying the image to a clipboard, and saving theimage in a file. The destination selection simplifies the outputoperation for the user. For example, selection of a choice directlyaffects the acquisition parameters and image quality without requiringthe user to know what parameters to set.

[0043] The persistently-visible context-specific menu 126 also has a“New Preview” command 132 that directs scanners to create a previewimage of an image that is currently in the scanning bed. The image ispresented in the preview scan space 124. When the image appears in thescan space 124, a preview control 134 is provided to allow the user toselect a region of the image for a final scan. In the illustratedimplementation, the control 134 is shown as a dashed rectangular boxframing the picture. The user can manipulate the box 134 to capture allor less than all of the image. Upon selection of the region, the controlcan proportionally resize the image to reflect the size of the scannerbed and automatically configure the scanner to make the appropriateadjustments to capture the selected image portion.

[0044] The menu 126 includes a “Scan/Open” command 136 to direct thescanner to capture the image. When this command is selected, the scannerscans the image in its bed. Concurrently with this scanning action, theimage progressively appears in the preview scan space 124 to visuallyconvey that the scanner is scanning the image. In one implementation,the image is progressively displayed row-by-row from top to bottom ofthe image.

[0045] The menu 126 includes a “Save” option 138, which directs thescanner to capture the image as a file and store the file in thecomputer memory. The last listed option is a “Send to” option 140, whichallows the user to send the image to various locations (or applications)on the PC, such as for packaging in a facsimile or email.

[0046]FIG. 6 shows a “My Camera” window 150 that is presented uponselection of the “My Camera” icon 116 in FIG. 4. The camera window 150presents a context space 152 that pertains to the camera context. Thecontext space 152 has a file space 154 and a persistently-visible,context-specific menu 156 positioned adjacent the file space within thegraphical window 150.

[0047] The context-specific menu 156 is always visible in the camerawindow 150 and offers options that are tailored to operating the digitalcamera 28 attached to the computer. While some of the options may beincluded in a context menu (i.e., a menu that appears near the pointerfollowing a right moue click), the persistently-visible menu 156 listsoperating specific options tailored to the camera that are not includedelsewhere in the user interface.

[0048] The menu 156 is illustrated as having two tabs: a pictures tab158 and a camera tab 160. Table 1 contains the options and correspondingfunctions available on the pictures tab 158. TABLE 1 Option FunctionOpen Opens a picture with a default registered application. Save in “MyPictures” folder Downloads the images from the camera and copies them to“My Pictures” directory on computer memory. Zoom Changes the window viewand allow the user to select one picture at the time and zoom in/out ofthe picture once it's copied locally. Send to Allows the user to sendthe picture to various locations (or applications) on the PC. Forexample, the user may choose to “send” the picture to an “emailrecipient”. Lock on Camera Allows the user to lock a picture to preventaccidental deletion. Delete from Camera Allows the user to permanentlyremove the picture from the camera after a confirmation. Rotate to theRight Allows the user to rotate the picture 90 degrees to the right.Rotate to the Left Allows the user to rotate the picture 90 degrees tothe left. View Properties Allows the user to view properties associatedwith the selected picture(s).

[0049] Table 2 contains the options and corresponding functionsavailable on the camera tab 160. TABLE 2 Option Function Take PictureTriggers the camera to take a picture. Copy all Pictures Copies all thepictures to designated location on the PC. Remove all Pictures Deletesall pictures in the camera. Share Brings up a wizard for the local userto share the camera. Initialize Memory Card Enables user to initializethe storage card in the camera. View Properties Allows the user to viewa summary of the camera properties.

[0050] The file space 154 lists files and/or folders that pertain todigital images taken by the digital camera. The files are the imagesthemselves (e.g., JPG files) and the folders contain image files and/orother folders with image files in them.

[0051] The file space 154 presents the files that are currently storedon the camera. In this manner, the user can easily view the cameramemory as if it were another memory of the computer. The UI allows easyintegration of the camera control into the familiar windowingenvironment.

[0052] To add a picture to the file space, the user captures a pictureusing the “Take Picture” command in the camera menu 160. The picturethen appears as a file in the file space 154. The user can then selectthe image file by clicking on the file and manipulating the pictureusing the commands on the pictures menu 158, such as “Rotate to theLeft”, “Rotate to the Right”, “Zoom”, and “Send to”. The user can alsosave the image file to the computer memory using the command “Save in MyPictures folder”.

[0053]FIG. 7 shows a modified “My Camera” window 170 that supportsdual-mode cameras (i.e., video and still). The modified window 170 ispresented upon selection of the “My Camera” icon 116 in FIG. 4 and issimilar to the window 150 of FIG. 6 in that it has a context space 172with a file space 174 and a persistently-visible, context-specific menu176. However, in this modified implementation, the context-specific menu176 also has a video tab 178 to list options pertaining to operation ofthe video camera 26.

[0054] Notice also that one of the files in the file space 174 is aplay-in-place video file 180. This play-in-place video file 180 can beactuated to play a video clip or stream within the small area depictedas box 180. That is, the static video icon in box 180 is replaced with astreaming video at the same location in the file space. Play-in-placevideo files 180 were first introduced in Media Manager, a multimediaapplication available from Microsoft.

[0055] Table 3 contains the options and corresponding functionsavailable on the video tab 178. TABLE 3 Option Function Play Plays backa video stream from the video camera. Open Opens a video file with adefault application. Capture Frame Directs the video camera to record asingle still-image frame. Capture Video Directs the video camera torecord a video clip. View Properties Allows the user to view a summaryof the video camera properties.

[0056] Other commands may be added to the menu. For instance, a “stop”command may be employed to halt the capture of live video.

[0057] Image Acquisition API

[0058] The image acquisition API 66 enables applications to manageloading and unloading of all imaging devices, monitor device events,query device information properties, create device objects, captureimages using the devices, and store or manipulate the images after theircapture.

[0059] The interfaces are accessible by high level languages (e.g.,Visual Basic) as well as lower level ones (e.g., C, C++, etc.). COM is asuitable interface. In this context, each device is exposed as a COMobject, whereby the object provides a number of methods and propertiesassociated with the imaging device.

[0060] As one exemplary implementation, there are three general objects:a device manager object, a camera object, and a scanner object. Theobjects are described generally below. A more detailed description ofthe objects and methods are provided in the Appendix to this disclosure.This Appendix is incorporated into the disclosure.

[0061] The device object contains device context and status informationfor a physical device. Once a device object is created for a physicaldevice, the physical device controls what device properties areavailable and what values the properties may assume. There may bemultiple device objects created for any physical device. However, adevice object has exclusive access to a physical device before anyoperation (i.e., scan, take a picture, etc.) is performed. Exclusiveaccess to a physical device is made available through alocking/unlocking mechanism. The device manager is implemented as threeobjects that perform the following functions:

[0062] A CImageInDevMgr object is used to:

[0063] Create a device enumerator object

[0064] Create a device object when given a DeviceID

[0065] Display UI to let a user choose a device object

[0066] Display UI to both choose a device and acquire an image from thechosen device.

[0067] A CEnumImageInDevInfo object is used to:

[0068] Enumerate all ImageIn devices on a system. For each deviceenumerated, a CImageInDevInfo object is returned.

[0069] A CImageInDevInfo object is used to:

[0070] Query device information properties from the ImageIn device. Oneof the properties, Device ID, can be used by CImageInDevMgr to create adevice object.

[0071] The camera object may expose the following functions:

[0072] Open and close the device for communication

[0073] Control the device

[0074] Update and read device properties

[0075] Update and read picture properties

[0076] Download, remove, and upload pictures to device

[0077] The scanner object may expose the following functions:

[0078] Open and close the device for communication

[0079] Control the device

[0080] Update and read device properties

[0081] Set operation intent

[0082] Although the invention has been described in language specific tostructural features and/or methodological steps, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or steps described. Rather, thespecific features and steps are disclosed as preferred forms ofimplementing the claimed invention.

1. An image acquisition system comprising: a computer having a memory;an imaging device coupled to the computer, the imaging device having adevice memory, the imaging device capturing a digital image and storingthe image on one of the computer memory or the device memory; an imagedevice manager executable on the computer to control operation of theimaging device; and a user interface with a context space and apersistently-visible imaging menu positioned within the context space,the imaging menu listing options that are particular to controlling theimaging device and managing images captured by the imaging device.
 2. Animage acquisition system as recited in claim 1, wherein the imaging menuincludes a capture option that directs the imaging device to capture animage and to store the image in the memory of the computer.
 3. An imageacquisition system as recited in claim 1, wherein the context spacelists image files stored on at least one of the device memory or thecomputer memory.
 4. An image acquisition system as recited in claim 1,wherein: the imaging device is a scanner; and the context spacepresented by the user interface contains a preview scan area that showsa preview of an image in the scanner.
 5. An image acquisition system asrecited in claim 1, wherein: the imaging device is a scanner; and thecontext space presented by the user interface contains a scan area thatis initially empty prior to a time when the scanner scans an image andthen progressively displays the image as the scanner scans the image. 6.An image acquisition system as recited in claim 1, wherein the contextspace exhibits a play-in-place video file at a location, theplay-in-place video file being actuatable to play a video stream at thelocation in the context space.
 7. An image acquisition system as recitedin claim 1, further comprising an operating system stored in the memoryand executable on the computer, the image device manager beingincorporated into the operating system.
 8. An image acquisition systemas recited in claim 1, further comprising a browser stored in the memoryand executable on the computer, the image device manager beingincorporated into the browser.
 9. In an image acquisition system havinga computer and an imaging device coupled to the computer, an imagemanager implemented in software stored in the computer comprising: auser interface presenting a context space of an imaging context and apersistently-visible imaging menu positioned within the context space,the imaging menu listing options that are particular to operating theimaging device and managing image files; and an image device driver tocontrol operation of the imaging device in response to selected optionsin the imaging menu.
 10. An image manager as recited in claim 9, whereinthe imaging menu includes a capture option to capture an image from theimaging device, and the image device driver directs the imaging deviceto capture the image into an image file for storage on the imagingdevice or the computer in response to selection of the capture option.11. An image manager as recited in claim 9, wherein the context spaceholds image files and the imaging menu includes an option to operate onone or more of the image files.
 12. An image manager as recited in claim9, wherein the context space exhibits a play-in-place video file at alocation, the play-in-place video file being actuatable to play a videostream at the location in the context space.
 13. An image manager asrecited in claim 9, wherein the imaging device coupled to the computeris a scanner and the context space of the user interface pertains to ascanner context and contains an area that is initially empty prior to atime when the scanner scans an image and then progressively displays theimage as the scanner scans the image.
 14. An operating system embodiedon a computer readable medium comprising an image manager as recited inclaim
 9. 15. A file system embodied on a computer readable mediumcomprising an image manager as recited in claim
 9. 16. A browser programembodied on a computer readable medium comprising an image manager asrecited in claim
 9. 17. A user interface embodied on a computer-readablemedium and executable on a computer comprising: a file space of aselectable context, the file space exhibiting one or more files and/orfolders pertaining to the context; and a persistently-visiblecontext-specific menu positioned within the file space adjacent to thefiles and/or folders, the context-specific menu listing options that areparticular to the context of the file space.
 18. A user interface asrecited in claim 17, wherein the files comprise digital image files andthe folders comprise sets of digital image files.
 19. A user interfaceas recited in claim 17, wherein the context of the file space pertainsto imaging devices, and the options listed in the context-specific menuinclude a command to capture digital images using an imaging devicecoupled to the computer.
 20. A user interface as recited in claim 17,wherein the file space also exhibits a play-in-place video file at alocation, the play-in-place video file being actuatable to play a videostream at the location in the file space.
 21. A user interface asrecited in claim 17, wherein the options in the context-specific menuchange in response to changing the context of the file space.
 22. A filesystem embodied on a computer-readable medium incorporating the userinterface as recited in claim
 17. 23. An operating system embodied on acomputer-readable medium incorporating the user interface as recited inclaim
 17. 24. A browser embodied on a computer-readable mediumincorporating the user interface as recited in claim
 17. 25. For acomputer-implemented scanning system having a scanner coupled to acomputer, a user interface comprising a graphical window having apreview scan space, the preview scan space being initially empty priorto a time when the scanner scans an image, the user interfaceprogressively displaying the image within the preview scan space tovisually convey that the scanner is scanning the image.
 26. A userinterface as recited in claim 25, wherein the user interfaceprogressively displays the image row-by-row.
 27. A user interface asrecited in claim 25, wherein the user interface progressively displaysthe image currently with the scanner scanning the image.
 28. A userinterface as recited in claim 25, further comprising apersistently-visible menu positioned adjacent the preview scan spacewithin the graphical window, the menu containing options that areparticular to operating the scanner.
 29. A user interface as recited inclaim 25, further comprising a destination list that presents a userwith choices on what to do with the scanned image.
 30. A user interfaceas recited in claim 25, farther comprising a control enable a user toselect which portion of the image to scan in a final output.
 31. A filesystem embodied on a computer-readable medium incorporating the userinterface as recited in claim
 25. 32. An operating system embodied on acomputer-readable medium incorporating the user interface as recited inclaim
 25. 33. A browser embodied on a computer-readable mediumincorporating the user interface as recited in claim
 25. 34. For acomputer-implemented scanning system having a scanner coupled to acomputer, a user interface embodied on a computer-readable medium andexecutable on the computer comprising: a graphical window having apreview scan space to hold a preview of the image to be scanned by thescanner; and a control to enable a user to select a portion of the imageto be scanned by the scanner.
 35. An operating system embodied on acomputer-readable medium incorporating the user interface as recited inclaim
 34. 36. A browser embodied on a computer-readable mediumincorporating the user interface as recited in claim
 34. 37. Anapplication program interface for an image acquisition system, theapplication program interface being embodied on a computer-readablemedium and having methods for performing the following functions:creating a device object for an imaging device; displaying a userinterface to enable a user to choose the device object; displaying auser interface to enable the user to capture an image using the imagingdevice; and querying the imaging device for properties.
 38. Anapplication program interface for an image acquisition system, theapplication program interface being embodied on a computer-readablemedium and having methods for performing the following functions:opening and closing a camera for communication; controlling the camera;and reading properties associated with the camera. reading propertiesassociated with pictures taken by the camera; and manipulating picturesstored in a memory of the camera.
 39. An application program interfacefor an image acquisition system, the application program interface beingembodied on a computer-readable medium and having methods for performingthe following functions: opening and closing a scanner forcommunication; controlling the scanner; and reading propertiesassociated with the scanner.
 40. A computer-implemented method forexecution in a graphical user interface windowing environment,comprising the following steps: presenting a set of one or more filesand/or folders in a file space within a graphical window; presenting apersistently-visible, context-specific menu within the file spaceadjacent to the files and/or folders; and listing options in thecontext-specific menu that are particular to operating on the filesand/or folders in the file space.
 41. A computer-implemented method asrecited in claim 40 wherein the presenting step comprises the step ofpresenting a set of digital image files.
 42. A computer-implementedmethod as recited in claim 40 further comprising the step of operatingon the files and/or folders in response to selection of an option in thecontext-specific menu.
 43. A computer-implemented method as recited inclaim 40 further comprising the step of exhibiting a play-in-place videofile at a location in the file space, the play-in-place video file beingactuatable to play a video stream at the location in the file space. 44.A computer-implemented method as recited in claim 40 further comprisingthe following steps: presenting a new set of one or more files and/orfolders in the file space; and listing new options in thecontext-specific menu that are particular to operating on the new set offiles and/or folders.
 45. For a computer-implemented scanning systemhaving a scanner coupled to a computer, a computer-implemented methodfor executing a scanning software application in a graphical userinterface windowing environment, comprising the following steps:presenting a preview scan space within a graphical window, the previewscan space being initially empty; and progressively displaying an imagewithin the preview scan space to visually convey that the scanner isscanning the image.
 46. A computer-implemented method as recited inclaim 45 wherein the displaying step comprises the step of building theimage row-by-row.
 47. A computer-implemented method as recited in claim45 wherein the displaying step comprises the step of building the imagesimultaneously as the scanner scans the image.
 48. Acomputer-implemented method as recited in claim 45 further comprisingthe following steps: presenting a persistently-visible menu within thepreview scan space within the graphical window; and listing options inthe menu that are particular to operating the scanner.
 49. For acomputer-implemented scanning system having a scanner coupled to acomputer, a computer-implemented method for executing a scanningsoftware application in a graphical user interface windowingenvironment, comprising the following steps: presenting a preview scanspace to hold a preview of the image to be scanned by the scanner; andenabling a user to select a portion of the image to be scanned by thescanner.